package com.gdc.cloud.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;


/**
 * Description: Config 配置类
 * @author: gdc
 * @date: 2022/5/23
 * @version 1.0
 */
@Configuration
public class ApplicationContextConfig {

    /**
     * 注入 RestTemplate
     *
     * | @LoadBalanced      使 RestTemplate 具有了客户端负载均衡能力
     *      作用： 使用了这个注解以后 ，会在  restTemplate 里面 通过 restTemplate.setInterceptors 放入  LoadBalancerInterceptor ，
     *          这个过滤器会在 请求远程成接口的时候 动态判断请求的域是不是  负载 负载均衡支付的服务的地址，如果是，那么就会代理 使用 这个负载均衡器 来调用。
     */
    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }
}